import { createSSRApp } from 'vue'
import { routeInterceptor } from '@/router/interceptor'
import { setupStore } from '@/store'

import App from './App.vue'
// 引入全局样式
import '@/style/index.scss'

import '@/style/iconfont.css'

export function createApp() {
  const app = createSSRApp(App)

  // 安装 Pinia 状态管理
  setupStore(app)

  // 安装路由拦截器
  routeInterceptor.install()

  // 全局错误处理
  app.config.errorHandler = (err, vm, info) => {
    console.error('Vue Error:', err)
    console.error('Component:', vm)
    console.error('Error Info:', info)

    // 可以在这里上报错误到监控系统
    // reportError(err, vm, info)
  }

  // 全局警告处理
  app.config.warnHandler = (msg, vm, trace) => {
    console.warn('Vue Warning:', msg)
    console.warn('Component:', vm)
    console.warn('Trace:', trace)
  }

  // 注册全局属性（可选）
  app.config.globalProperties.$utils = {
    // 可以在这里添加全局工具函数
  }

  return {
    app,
  }
}
